function PercorsiManager(){
    //this.constant_backendPercorsi="utility/backend.Percorsi.php?get=getpath";
    this.constant_backendPercorsi="http://admin.festivalscienza.it/jsonget.php?get=idperc";
    this.constant_backendPercorsiReq="http://admin.festivalscienza.it/jsonget.php?get=getpath";
    this.constant_backendPercorsiDel="http://admin.festivalscienza.it/jsonget.php?get=deletepath";
    this.pathList=Array();
    this.pathIdList=Array();
    this.pathToShow=null;//il path (da pathlist) da visualizzare
    this.giorniList=Array();
    
    /**
     * restituisce la lista di percorsi caricata in precedenza
     */
    this.getLoadedPathList=function(){
        return this.pathIdList;
    }
    /**
     * permette di caricare la lista di percorsi
     */
    this.getPathList=function(callback){
        var params=new Object();
        params.utente=getUtente();

        jsonQuery(params,pathman.constant_backendPercorsi, function(responseObject) {
            //TREMOLOS
            //alert("ROB"+responseObject);
            pathman.encodePathListData(responseObject,callback);
        }, function() {
            printErrorMessage('Errore', 'Si &egrave; verificato un errore nel corso del caricamento della lista di percorsi. Ricaricare la pagina. Se il problema persiste contattare l\'amministratore di sistema '+evtman.constant_backendEvents);
        });
    }
    /**
     * funzione di richiesta del percorso
     */
    this.getPathFromId= function(idPath,callback){
        //var conn = new Ext.data.Connection();
        //alert("GPFID "+idPath);
        if(this.pathList[idPath]!=null){
            this.pathToShow=this.pathList[idPath];
            //alert("PATH TO SHOW "+dump(this.pathToShow));
            if(callback) callback();
        }
        else{
            params={
                idperc:idPath
            };
            jsonQuery(params, pathman.constant_backendPercorsiReq, function(responseObject) {
                //pathman.encodePathData(responseObject.responseText,callback);
                pathman.encodePathData(responseObject,callback);
            },function() {
                alert('Errore', 'Si &egrave; verificato un errore nel corso del caricamento del percorso. Ricaricare la pagina. Se il problema persiste contattare l\'amministratore di sistema '+evtman.constant_backendEvents);
            });
        }
    }

    /**
     * converte i path in oggetti e chiama la funzione di callback
     */
    this.encodePathData=function(respText,callback){
        //alert(respText);
        //alert(dump(callback));
        try{
            status="decode";
            if(respText!=""){
                //document.getElementById('footer-cd').innerHTML+=decoding;
                decoding=removeJsonpPaddign(respText);
                status="setPathToShow";
                //alert("DECODING "+dump(decoding));
                this.pathToShow=decoding;
                this.pathList[decoding.id]=decoding;
            }
            status="callback";
            //alert(dump(callback));
            if(callback)
                callback();
            status="fine";
        } catch(err){
            alert("errore in encodePathData("+status+"):"+err);
        }
    }

    /**
     * Callback che permette di ottenere le informazioni di base su ciascun
     * percorso (id, giorno, nomeutente)
     */
    this.encodePathListData=function(respText,callback){
        this.pathIdList=Array();
        try{
            status="decode";
            if(respText!=""){
                //decoding=Ext.util.JSON.decode(respText);
                decoding=removeJsonpPaddign(respText);
                status="appendToPathIdList";
                //alert("DECOD "+dump(decoding));
                for(var i in decoding){
                    if(!isNaN(i)){
                        this.pathIdList[decoding[i]['id']]=decoding[i];
                    }
                }
            }
            status="callback";
            if(callback)
                callback();
            status="fine";
        } catch(err){
            alert("errore in encodePathListData("+status+"):"+err);
        }
    }

    /**
     * restituisce il percorso da mostrare
     */
    this.getPathToShow=function(){
        return this.pathToShow;
    }

    this.deletePath=function(id){
        var hash=MD5(getUtente()+id);

        var params={
            idperc:id,
            md5:hash
        };
        jsonQuery(params, pathman.constant_backendPercorsiDel, function(responseObject) {
            //pathman.encodePathData(responseObject.responseText,callback);
            if(responseObject.esito==1){
                pathman.getPathList(ctrl.callbackPathsReloaded);
                //alert(ctrl.callbackPathsReloaded);
            }
            else(alert('errore'));
        },function() {
            alert('Errore', 'Si &egrave; verificato un errore nel corso del caricamento del percorso. Ricaricare la pagina. Se il problema persiste contattare l\'amministratore di sistema '+evtman.constant_backendEvents);
        });
    }
}